package com.code.gen.bean.bo.file;

import java.util.ArrayList;
import java.util.List;

import lombok.Data;

/**
 * 代码生成文件属性类
 * 
 * @author liu
 * @date 2022-08-05
 */
@Data
public class CodeGenFileProperties {

    // =======================================================================================================
    // ===============================================类属性和方法===============================================
    // =======================================================================================================
    /**文件字段信息*/
    private List<CodeGenFieldProperties> fileFeild = new ArrayList<>();
    // =======================================================================================================
    // ================================================类特殊字段===============================================
    // =======================================================================================================
    /** "*"代表的字段*/
    private String xing;
    /** "*"代表的字段大写*/
    private String xingD;
    /**是否有ID字段*/
    private Boolean existId = false;
    /**JavaID字段名大写*/
    private String javaIdNameD;
    /**JavaID字段名小写*/
    private String javaIdNameX;
    /**JavaID字段注释*/
    private String javaIdComment;
    /**JavaID字段类型*/
    private String javaIdType;
    /**DatabaseID字段名*/
    private String databaseIdName;
    /**DatabaseID字段名大写*/
    private String databaseIdNameD;
    /**XML字段ID类型*/
    private String xmlIdType;
    /**XML字段ID参数和返回值类型*/
    private String xmlIdParamType;
    /**是否有字段的唯一标识,编号*/
    private Boolean existSerialNumber = false;
    /**Java字段的唯一标识名称大写*/
    private String javaSerialNumberNameD;
    /**Java字段的唯一标识名称小写*/
    private String javaSerialNumberNameX;
    /**Java字段的唯一标识注释*/
    private String javaSerialNumberComment;
    /**Java字段的唯一标识类型*/
    private String javaSerialNumberType;
    /**Database字段的唯一标识名称*/
    private String databaseSerialNumberName;
    /**Database字段的唯一标识名称大写*/
    private String databaseSerialNumberNameD;
    /**XML字段的唯一标识类型*/
    private String xmlSerialNumberType;
    /**XML字段的唯一标识参数和返回值类型*/
    private String xmlSerialNumberParamType;
    /**是否有标记删除字段*/
    private Boolean existDel = false;
    /**Java标记删除字段的名称大写*/
    private String javaDelNameD;
    /**Java标记删除字段的名称小写*/
    private String javaDelNameX;
    /**Java标记删除字段注释*/
    private String javaDelComment;
    /**Java标记删除字段类型*/
    private String javaDelType;
    /**Database标记删除字段的名称*/
    private String databaseDelName;
    /**Database标记删除字段的名称大写*/
    private String databaseDelNameD;
    /**XML标记删除字段类型*/
    private String xmlDelType;
    /**XML标记删除字段参数和返回值类型*/
    private String xmlDelParamType;
    /**是否删除字段要查询的状态列表字符串*/
    private String delNumberList;
    /**Database字段的创建时间名称大写*/
    private String databaseCreateTimeNameD;
    // =======================================================================================================
    // ================================================类相关信息===============================================
    // =======================================================================================================
    /**类注释*/
    private String classComment;
    /**类注释作者*/
    private String classCommentAuthor;
    /**类注释时间*/
    private String classCommentDate;
    /**序列化ID*/
    private String serialVersionUid;
    /**类名首字母大写*/
    private String classNameD;
    /**类名首字母小写*/
    private String classNameX;
    /**类作为参数的参数名小写*/
    private String paramNameX;
    /**类作为参数的参数名大写*/
    private String paramNameD;
    /**类作为Bean对象的对象名*/
    private String beanName;
    /**Controller路径*/
    private String controllerMapping;
    // =======================================================================================================
    // ================================================数据库相关===============================================
    // =======================================================================================================
    /**表名*/
    private String tableName;
    /**表名大写*/
    private String tableNameD;
    /**建表语句*/
    private String createSql;

    // =======================================================================================================
    // ==================================================扩展=================================================
    // =======================================================================================================
    /** 生成包路径 */
    private String packageName;
    /** 生成模块名 */
    private String moduleName;
    /** 生成业务名 */
    private String businessName;
    /** 生成功能名 */
    private String functionName;
    /** 生成功能作者 */
    private String functionAuthor;
    /** 生成代码方式（1当前项目下 2zip压缩包 3自定义路径） */
    private Integer genType;
    /** 生成路径（不填默认项目路径） */
    private String genPath;
    /** 其它生成选项 */
    private String options;
    /** 上级菜单ID字段 */
    private String parentMenuId;
    /** 上级菜单名称字段 */
    private String parentMenuName;

}